<?php

namespace JLPay\Models\Openmerch\Change;

/**
 * 商户身份信息DTO
 */
class MerchIdentificationInfoDto
{
    protected ?string $licenseName = null;
    protected ?string $businessScope = null;
    protected ?string $licenseAddress = null;
    protected ?string $periodBegin = null;
    protected ?string $periodEnd = null;
    protected ?string $licensePic = null;
    protected ?string $idCardName = null;
    protected ?string $idCardEnglishName = null;
    protected ?string $idCardNo = null;
    protected ?string $legalPersonPhone = null;
    protected ?string $cardPeriodBegin = null;
    protected ?string $cardPeriodEnd = null;
    protected ?string $idCardCopy = null;
    protected ?string $idCardNational = null;
    protected ?string $proofInfo = null;

    /**
     * 设置商户法定名称
     *
     * @param string $licenseName
     * @return self
     */
    public function setLicenseName(string $licenseName): self
    {
        $this->licenseName = $licenseName;
        return $this;
    }

    /**
     * 设置经营范围
     *
     * @param string $businessScope
     * @return self
     */
    public function setBusinessScope(string $businessScope): self
    {
        $this->businessScope = $businessScope;
        return $this;
    }

    /**
     * 设置注册地址
     *
     * @param string $licenseAddress
     * @return self
     */
    public function setLicenseAddress(string $licenseAddress): self
    {
        $this->licenseAddress = $licenseAddress;
        return $this;
    }

    /**
     * 设置营业证明影像
     *
     * @param string $licensePic
     * @return self
     */
    public function setLicensePic(string $licensePic): self
    {
        $this->licensePic = $licensePic;
        return $this;
    }

    /**
     * 设置经营者/法人姓名
     *
     * @param string $idCardName
     * @return self
     */
    public function setIdCardName(string $idCardName): self
    {
        $this->idCardName = $idCardName;
        return $this;
    }

    /**
     * 设置经营者/法人英文名称
     *
     * @param string $idCardEnglishName
     * @return self
     */
    public function setIdCardEnglishName(string $idCardEnglishName): self
    {
        $this->idCardEnglishName = $idCardEnglishName;
        return $this;
    }

    /**
     * 设置经营者/法人身份证件号码
     *
     * @param string $idCardNo
     * @return self
     */
    public function setIdCardNo(string $idCardNo): self
    {
        $this->idCardNo = $idCardNo;
        return $this;
    }

    /**
     * 设置经营者/法人手机号码
     *
     * @param string $legalPersonPhone
     * @return self
     */
    public function setLegalPersonPhone(string $legalPersonPhone): self
    {
        $this->legalPersonPhone = $legalPersonPhone;
        return $this;
    }

    /**
     * 转换为数组
     *
     * @return array
     */
    public function toArray(): array
    {
        return [
            'license_name' => $this->licenseName,
            'business_scope' => $this->businessScope,
            'license_address' => $this->licenseAddress,
            'period_begin' => $this->periodBegin,
            'period_end' => $this->periodEnd,
            'license_pic' => $this->licensePic,
            'id_card_name' => $this->idCardName,
            'id_card_english_name' => $this->idCardEnglishName,
            'id_card_no' => $this->idCardNo,
            'legal_person_phone' => $this->legalPersonPhone,
            'card_period_begin' => $this->cardPeriodBegin,
            'card_period_end' => $this->cardPeriodEnd,
            'id_card_copy' => $this->idCardCopy,
            'id_card_national' => $this->idCardNational,
            'proof_info' => $this->proofInfo
        ];
    }
} 